<?php

declare(strict_types=1);

namespace App\Controller;

use App\Request\GuildManage\ApplyWithdrawalRequest;
use App\Request\GuildManage\GuildAddRequest;
use App\Request\GuildManage\GuildDelRequest;
use App\Request\GuildManage\WithdrawalListRequest;
use App\Service\GuildManage\AddBaseService;
use App\Service\GuildManage\ApplyService;
use App\Service\GuildManage\CheckSwitchService;
use App\Service\GuildManage\DelService;
use App\Service\GuildManage\InfoService;
use App\Service\GuildManage\ListService;
use App\Service\GuildManage\PanelService;
use App\Service\GuildManage\WithdrawalListService;
use Hyperf\HttpServer\Annotation\Controller;
use Hyperf\HttpServer\Annotation\Middleware;
use App\Middleware\JTAuthMiddleware;
use Hyperf\HttpServer\Annotation\RequestMapping;

/**
 * @Controller(prefix="guild/manage")
 * @Middleware(JTAuthMiddleware::class)
 */
class GuildManageController extends AbstractController
{
    /**
     * 添加提现账号
     * @param GuildAddRequest $request
     * @param AddBaseService $service
     * @return array
     * @RequestMapping(path="add_account", methods="post")
     */
    public function addAccount(GuildAddRequest $request, AddBaseService $service): array
    {
        $request->validated();

        return $service->response();
    }

    /**
     * 删除提现账号
     * @param GuildDelRequest $request
     * @param DelService $service
     * @return array|mixed
     * @RequestMapping(path="del_account", methods="post")
     */
    public function delAccount(GuildDelRequest $request, DelService $service)
    {
        $request->validated();

        return $service->response();
    }

    /**
     * 提现账号列表
     * @param ListService $service
     * @return array|mixed
     * @RequestMapping(path="account_list", methods="post")
     */
    public function accountList(ListService $service)
    {
        return $service->response();
    }

    /**
     * 提现面板
     * @param PanelService $service
     * @return array|mixed
     * @RequestMapping(path="panel", methods="post")
     */
    public function accountInfoPanel(PanelService $service)
    {
        return $service->response();
    }

    /**
     * 提现列表
     * @param WithdrawalListRequest $request
     * @param WithdrawalListService $service
     * @return mixed
     * @RequestMapping(path="withdraw/list", methods="post")
     */
    public function withdrawalList(WithdrawalListRequest $request, WithdrawalListService $service)
    {
        $request->validated();

        return $service->response();
    }

    /**
     * 申请提现
     * @param ApplyWithdrawalRequest $request
     * @param ApplyService $service
     * @return array|mixed
     * @RequestMapping(path="apply", methods="post")
     */
    public function withdrawalApply(ApplyWithdrawalRequest $request, ApplyService $service)
    {
        $request->validated();

        return $service->response();
    }

    /**
     * 提现用户是否有入口
     * @param CheckSwitchService $service
     * @return array|mixed
     * @RequestMapping(path="check", methods="post")
     */
    public function checkManage(CheckSwitchService $service)
    {
        return $service->response();
    }

    /**
     * 提现进入
     * @param InfoService $service
     * @return mixed
     * @RequestMapping(path="info", methods="post")
     */
    public function withdrawalInfo(InfoService $service)
    {
        return $service->response();
    }
}
